package com.xiaomazi.ucenter.service;

import com.xiaomazi.common.utils.R;
import com.xiaomazi.servicebase.entity.UserInfo;
import com.xiaomazi.servicebase.entity.UserInfoToOrder;
import com.xiaomazi.ucenter.dto.LoginDTO;
import com.xiaomazi.ucenter.dto.RegisterDTO;
import com.xiaomazi.ucenter.entity.Ucenter;
import com.baomidou.mybatisplus.extension.service.IService;


public interface UcenterService extends IService<Ucenter>{


    /**
     * 用户登录的方法
     * @param loginDTO 前端输入的用户名和密码
     * @return jwt-token
     */
    R login(LoginDTO loginDTO);

    /**
     * 注册用户的方法
     * @param registerDTO 用户信息
     * @return
     */
    R register(RegisterDTO registerDTO);

    /**
     * 生成微信二维码
     * @return 地址
     */
    String generateWechatCode();

    /**
     * 获取扫描人信息，添加数据
     * @param code 临时票据，类似于验证码
     * @param state 自定义的参数
     * @return
     */
    String getWechatUserInfo(String code, String state);

    /**
     * 根据userId获取用户基本信息
     * @param userId id
     * @return userInfo
     */
    UserInfo getUserInfoByUserId(String userId);

    /**
     * 根据userId查询出用户基本信息 供生成订单调用
     * @param userId 用户id
     * @return UserInfoToOrder
     */
    UserInfoToOrder getUserInfoToOrderByUserId(String userId);

    /**
     * 根据日期查询出某一天的注册人数
     * @param day
     * @return
     */
    Integer getCountByDay(String day);
}
